This invention relates to computer image generation (CIG) systems in general, and in particular to dynamic (real time) CIG systems which model objects by means of nonlinear surfaces.
In order to achieve the high data rates required for real-time displays, a number of current CIG systems employ linear modeling techniques. Each object in the viewable scene displayed by such prior art image generators is defined as a polygon (or polyhedron) whose projection into the image plane consists of linear edges. Examples of such systems may be found in U.S. Pat. Nos. 3,602,702; 3,621,214; 3,736,564; 4,179,824; and 4,276,029; issued respectively to Warnock; Romney et al; Watkins; Marsh, and Gibson et al.
One advantage--indeed, the major justification--of linearization is simplified computation. By their nature, however, edge systems produce a stylized scene feature characterized more by linear artifacts than by the true nature of the desired imagery. Furthermore, scene content and detail are severely limited by the edge-count capacity of the system.
Of course, improvements in hardware capability have significantly enhanced the edge count of present CIG designs. Scene modeling still remains a problem, though, because even a small number of objects may include thousands of edges or faces which must each be positioned and linked in a reference coordinate system. Because actual reference coordinates, rather than descriptive features, are used to model objects in edge systems, automation of the modeling--i.e., off-line data base construction--is quite complicated and will typically require a significant investment in off-line equipment.
In addition to providing gross details of each modeled object, many CIG systems enhance scene content by texturing or varying the image intensity from pixel to pixel to create the illusion of a non-smooth surface. Texturing is accomplished, in general, in one of three ways. Most straightforward is the mapping of a stored texture pattern onto the image plane projection of the modeled object. This method is conceptually illustrated by the decor simulation method of U.S. Pat. No. 3,683,779; issued to Lifton. In a CIG system, of course, the texture pattern transparencies of Lifton would be implemented by means of memory storage devices with various patterns stored as digitized images. Scaling may be achieved by interpolation, but the data base for stored texture patterns is nonetheless extremely inefficient.
A second method of texturing takes advantage of the indeterminate nature of natural surface detail by simply varying color or intensity in a random fashion across the surface to be textured. Without relating the intensity variation in some way to object model coordinates, though, perspective validity cannot be maintained in a dynamic sequence.
Texture functions, a third general method for texturing, alleviate some of the problems discussed above, since they may be implemented with less memory than stored texture patterns and they may be mapped onto modeled objects, without change from frame-to-frame, to ensure perspective validity. An example of a system which uses preselected address bits for regulating texture is shown in U.S. Pat. No. 4,225,861, issued to Langdon et al. Existing texture functions, however, have certain drawbacks. Simple functions tend to produce regular unnatural patterns, while more complex functions add to computational expense and thereby exacerbate the problem of real time generation. It is clear, then, that desirable features in a CIG texture generator include correct representation of the indeterminate nature of natural surface textures, frame-to-frame coherence, and low storage and computational overhead.
A still further item of interest in CIG systems is antialiasing. Each frame in a dynamic image must be represented by a finite number of spatially sampled picture elements or pixels arranged in a raster format with equal spacing. The Nyquist Sampling theorem states that no spatial frequencies in the sampled signal greater than one half the sample frequency defined by the pixel width can be properly represented. Of course, the ideal solution to aliasing is to pre-filter the image before sampling to suppress all spatial frequencies greater than the Nyquist frequency. Unfortunately, implementation of an ideal low pass spatial filter is computationally prohibitive for real time frame rates.
Because ideal filtering is so computationally expensive, a number of approximate techniques have been developed. In one such method, each pixel is subdivided into an nxn subpixel array and the intensity adjusted in accordance with the number of subpixels in each different intensity or color area. No prior art antialiasing techniques have been developed, however, which completely eliminate the crawling, jumping and scintillation effects which characterize a dynamic sequence of aliased images. General discussions of antialiasing centering on more recent methods may be found in "Filtering Edges for Gray-Scale Displays", by Gupta and Sproull, Computer Graphics, Vol. 15, No. 3, August 1981; and "Anti-Aliasing through the Use of Coordinate Transformations", by K. Turkowski, ACM Transactions on Graphics, Vol. 1, No. 3, July 1982.